package com.crm.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.crm.entity.RoleModule;
import com.crm.service.RoleModuleService;
import com.crm.util.Result;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author crm
 * @since 2020-06-05
 */
@RestController//标注当前类是controller类，controller用 于处理客户端请求，加Rest表示当前类的所有方法都返回json数据，不走视图
public class RoleModuleController {
    @Resource//设置注入方式，spring 自动在spring容器找到叫这个名或这个类型的对象，赋给当前属性，controller调 用service
    private RoleModuleService roleModuleService;//roleModule的业务层父接口

    /**
     * 给角色保存权限
     *
     * @param
     * @return 成功或者失败
     */
    @RequestMapping("/SetSysRights")// 客户端请求地址
    public Object setSysRights(@RequestParam("ids") List<Integer> ids, Integer rid) {//返 回值和方法名，object表示可以返回任何对象，因为object是任何对象的父对象，要父给子没问匙

        /*
         * 保存角色的权限，是保存在中间表 一个角色很多权限，所以是批量添加 设置权限时，会包含原有权限，原有权限数据库中已保存
         * 继续保存会重复，所以保存前先去数据库删除原数据
         */
        // 1.根据普通列rid，条件删
        QueryWrapper<RoleModule> wp = new QueryWrapper<RoleModule>();//mybatis plus条件构造器queryWrapper
        wp.eq("rid", rid);
        roleModuleService.remove(wp);

        // 2.保存
        List<RoleModule> list = new ArrayList<>();
        for (Integer mid : ids) {
            list.add(new RoleModule(rid,mid));
        }

        roleModuleService.saveBatch(list);
        return new Result(0, "保存成功！");
    }
}
